package com.bj58.ecdata.dao.statementcreater;

import com.bj58.ecdata.dao.util.OutSQL;

import java.sql.Connection;
import java.sql.PreparedStatement;
import java.util.Map;

public abstract interface IStatementCreater
{
  public abstract <I> PreparedStatement createDelete(Class<?> paramClass, Connection paramConnection, I paramI, OutSQL paramOutSQL)
    throws Exception;
  
  public abstract <I> PreparedStatement createDeleteByIDS(Class<?> paramClass, Connection paramConnection, I[] paramArrayOfI, OutSQL paramOutSQL)
    throws Exception;
  
  public abstract PreparedStatement createDeleteByCustom(Class<?> paramClass, Connection paramConnection, String paramString, OutSQL paramOutSQL)
    throws Exception;
  
  public abstract PreparedStatement createDeleteByCustom(Class<?> paramClass, Connection paramConnection, Map<String, Object> paramMap, OutSQL paramOutSQL)
    throws Exception;
  
  public abstract PreparedStatement createGetByCustom(Class<?> paramClass,String tableSuffix, Connection paramConnection, String paramString1, String paramString2, String paramString3, OutSQL paramOutSQL)
    throws Exception;
  
  public abstract PreparedStatement createGetByCustom(Class<?> paramClass,String tableSuffix, Connection paramConnection, String paramString1, Map<String, Object> paramMap, String paramString2, OutSQL paramOutSQL)
    throws Exception;
  
  public abstract <I> PreparedStatement createGetByIDS(Class<?> paramClass, Connection paramConnection, I[] paramArrayOfI, OutSQL paramOutSQL)
    throws Exception;
  
  public abstract PreparedStatement createGetByPage(Class<?> paramClass,String tableSuffix, Connection paramConnection, String paramString1, String paramString2, int paramInt1, int paramInt2, String paramString3, OutSQL paramOutSQL)
    throws Exception;
  
  public abstract PreparedStatement createGetByPage(Class<?> paramClass,String tableSuffix, Connection paramConnection, Map<String, Object> paramMap, String paramString1, int paramInt1, int paramInt2, String paramString2, OutSQL paramOutSQL)
    throws Exception;
  
  public abstract <I> PreparedStatement createGetEntity(Class<?> paramClass, Connection paramConnection, I paramI, OutSQL paramOutSQL)
    throws Exception;
  
  public abstract PreparedStatement createUpdateByCustom(Class<?> paramClass, Connection paramConnection, String paramString1, String paramString2, OutSQL paramOutSQL)
    throws Exception;
  
  public abstract PreparedStatement createUpdateByCustom(Class<?> paramClass, Connection paramConnection, Map<String, Object> paramMap1, Map<String, Object> paramMap2, OutSQL paramOutSQL)
    throws Exception;
  
  public abstract PreparedStatement createUpdateEntity(Object paramObject, Connection paramConnection, OutSQL paramOutSQL)
    throws Exception;
  
  public abstract <I> PreparedStatement createUpdateByID(Class<?> paramClass, Connection paramConnection, String paramString, I paramI, OutSQL paramOutSQL)
    throws Exception;
  
  public abstract PreparedStatement createInsert(Object paramObject, Connection paramConnection, OutSQL paramOutSQL)
    throws Exception;
  
  public abstract PreparedStatement createGetCount(Class<?> paramClass,String tableSuffix, Connection paramConnection, String paramString, OutSQL paramOutSQL)
    throws Exception;
  
  public abstract PreparedStatement createGetCount(Class<?> paramClass,String tableSuffix, Connection paramConnection, Map<String, Object> paramMap, OutSQL paramOutSQL)
    throws Exception;
}
